package com.dragon.backstage.service;

import com.dragon.backstage.domain.param.userLoginLog.UserLoginLogParam;
import com.dragon.backstage.domain.vo.userLoginLog.UserLoginLogVo;
import com.dragon.common.domain.vo.PaginationVo;
import com.dragon.common.utils.AjaxResult;
import com.dragon.interfaces.entity.UserLoginLog;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 用户登陆记录 服务类
 * </p>
 *
 * @author dragon
 * @since 2024-08-01 18:08:24
 */
public interface UserLoginLogService extends IService<UserLoginLog> {

    /**
     * 用户登陆日志列表
     *
     * @param userLoginLogParam 查询参数
     * @return 分页数据
     */
    AjaxResult<PaginationVo<UserLoginLogVo>> userLoginLogList(UserLoginLogParam userLoginLogParam);

    /**
     * 删除用户登陆日志
     *
     * @param loginIds 登陆ID集合
     * @return 删除结果
     */
    AjaxResult<Void> deleteUserLoginLog(List<Long> loginIds);

    /**
     * 导出用户登陆日志
     *
     * @param response          响应
     * @param userLoginLogParam 查询参数
     */
    void exportUserLoginLog(HttpServletResponse response, UserLoginLogParam userLoginLogParam) throws IOException;

    /**
     * 清空用户登陆日志
     *
     * @return 清空结果
     */
    AjaxResult<Void> cleanUserLoginLog();

}
